home *** CD-ROM | disk | FTP | other *** search
- /*------------------------------------------------------------------------*
-
- cookRawkeyTest.e - test et monstre l'usage du module cookRawkey.m
-
- *------------------------------------------------------------------------*/
-
- MODULE 'intuition/intuition',
- 'intuition/screens',
- 'graphics/rastport',
- 'tools/cookRawkey'
-
- CONST ESCAPE_KEY=27
-
- PROC main() HANDLE
- DEF win=NIL:PTR TO window,
- idcmpMessage:PTR TO intuimessage, idcmpCode, idcmpQualifier, iAddress,
- error, errorMessage, asciiChar
- /*------------------------------*
- Initialise le module de conversion rawkey.
- *------------------------------*/
- IF error:=warmupRawkeyCooker() THEN Raise(error)
- /*-- Converti les rawkeys jusqu'à ce que la touche ESC est pressée. --*/
- IF win:=OpenW(20, 20, 500, 150,
- IDCMP_RAWKEY, WFLG_ACTIVATE,
- 'Pressez Escape pour Quitter', NIL, WBENCHSCREEN, NIL)
- REPEAT
- /*-- Attend un rawkey. --*/
- WHILE (idcmpMessage:=GetMsg(win.userport))=NIL DO WaitPort(win.userport)
- /*-- Copie l'info intuimessage, et répond. --*/
- idcmpCode:=idcmpMessage.code
- idcmpQualifier:=idcmpMessage.qualifier
- iAddress:=idcmpMessage.iaddress
- ReplyMsg(idcmpMessage)
- /*------------------------*
- Converti rawkey en ascii.
- *------------------------*/
- IF (asciiChar:=cookRawkey(idcmpCode, idcmpQualifier, iAddress)) <> ESCAPE_KEY
- TextF(20, 40, 'Key=\c', asciiChar)
- ENDIF
- UNTIL asciiChar=ESCAPE_KEY
- CloseW(win)
- ELSE
- WriteF('Ne peut ouvrir la fenêtre\n')
- ENDIF
- /*---------------------------------*
- Nettoie le module de conversion rawkey.
- *---------------------------------*/
- shutdownRawkeyCooker()
- EXCEPT
- errorMessage:='figger it out'
- /*--------------------------------------*
- Gère les exceptions levées par conversion
- *--------------------------------------*/
- SELECT exception
- CASE "MEM"; errorMessage:='avoir de la mémoire'
- CASE ER_CREATEPORT; errorMessage:='créé un port message'
- CASE ER_CREATEIO; errorMessage:='créé une requête IO'
- CASE ER_OPENDEVICE; errorMessage:='oouvrir le console.device'
- CASE ER_ASKKEYMAP; errorMessage:='demander le keymap'
- ENDSELECT
- WriteF('Ne peut pas \s!\n', errorMessage)
- /*---------------------------------*
- Nettoie le module de conversion rawkey.
- *---------------------------------*/
- shutdownRawkeyCooker()
- ENDPROC
-